#ifndef WORLD_H_
#define WORLD_H_

#include <boost/shared_ptr.hpp>
#include <list>
#include "../GObj/Object.h"
#include "irrlicht.h"

namespace Facets {

	class CameraFactory { 
		public: 
			boost::shared_ptr<irr::scene::ICameraSceneNode> CreateCamera(irr::core::vector3df pos,
											irr::core::vector3df dir) {
				irr::scene::ICameraSceneNode* lol = 0;
				return boost::shared_ptr<irr::scene::ICameraSceneNode>(lol); 		
		} 
	};

	class World {
		enum _e_state { WORLD_LOADING, WORLD_IN_PLAY, WORLD_LOBBY, WORLD_SAVING, WORLD_DEAD };
		_e_state m_WorldState;
		
		std::list<Object*> m_objectList;
		
		static CameraFactory* m_cameraFactory;
		
		public:
			World();
			virtual ~World();
			
			bool initializeCameraFactory();
			
			static CameraFactory* GetCameraFactory();
			
	};
}

#endif /*WORLD_H_*/
